import { http } from '@/utils'

interface TestType {
  userName: string
}

/**
 *  GET 请求测试 自定义返回的Key，临时对接第三方api使用
 *  也可以直接在http类中直接修改
 *  这个是临时修改
 *  全局修改请使用 http.setup
 */
export const getTestWithKeyApi = (query) => {
  return http.fetch<ResDataCustom<TestType>>('/api/getTestWithKey', {
    query,
    httpConfig: {
      status: {
        success: 1,
        key: 'success',
      },
      response: {
        dataKey: 'fteam',
        messageKey: 'msg',
      },
    },
  })
}

/** GET 请求测试 */
export const getTestApi = (query) => {
  return http.get<TestType>('/api/getTest', { query })
}

/** POST 请求测试 */
export const postTestApi: any = (data, query) => {
  return http.post('/api/postTest', { data, query })
}

/* await-to-js 简洁用法 */
export const awaitToJsTestApi: any = (query) => {
  return (
    http
      .post('/api/postTest', { query }) // 返回正常
      // .post('/error', { query }) // 返回错误
      .then(
        data => [data, null],
        e => [null, e],
      )
  )
}

/** 分页 请求测试 */
export const getUserListApi: any = (query) => {
  return http.get('/api/testList', { query })
}

/** 长时间请求 请求测试 */
export const getLongRequestApi: any = (query) => {
  return http.get('/api/longRequest', { query })
}
